package com.sky.controller;

import com.sky.domain.PmsCategoryBrandRelation;
import com.sky.service.PmsCategoryBrandRelationService;
import com.sky.utils.R;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 商品分类和品牌关系控制器
 * 用于处理商品分类和品牌之间的关系操作，包括查询、添加、更新和删除。
 */
@RestController
@RequestMapping("/pmsCategoryBrandRelation")
public class PmsCategoryBrandRelationController {

    @Resource
    private PmsCategoryBrandRelationService pmsCategoryBrandRelationService;

    /**
     * 根据品牌ID查询分类和品牌关系列表
     * @param brandId 品牌ID
     * @return 关系列表及操作结果
     */
    @GetMapping("/listByBrandId/{brandId}")
    public R listByBrandId(@PathVariable("brandId") Long brandId){
        List<PmsCategoryBrandRelation> list = pmsCategoryBrandRelationService.listByBrandId(brandId);
        return R.ok(list);
    }

    /**
     * 添加分类和品牌关系
     * @param pmsCategoryBrandRelation 分类和品牌关系实体
     * @return 添加结果及操作状态
     */
    @PostMapping("/add")
    public R add(@RequestBody PmsCategoryBrandRelation pmsCategoryBrandRelation){
        boolean result = pmsCategoryBrandRelationService.addRelation(pmsCategoryBrandRelation);
        return R.ok(result);
    }

    /**
     * 更新分类和品牌关系
     * @param pmsCategoryBrandRelation 分类和品牌关系实体
     * @return 更新结果及操作状态
     */
    @PostMapping("/update")
    public R update(@RequestBody PmsCategoryBrandRelation pmsCategoryBrandRelation){
        boolean result = pmsCategoryBrandRelationService.updateRelation(pmsCategoryBrandRelation);
        return R.ok(result);
    }

    /**
     * 根据ID删除分类和品牌关系
     * @param id 分类和品牌关系ID
     * @return 删除结果及操作状态
     */
    @DeleteMapping("/delete")
    public R delete(@RequestParam("id") Long id){
        boolean result = pmsCategoryBrandRelationService.removeById(id);
        return R.ok(result);
    }

    /**
     * 根据分类ID查询分类和品牌关系列表
     * @param catId 分类ID
     * @return 关系列表及操作结果
     */
    @GetMapping("/listByCatId/{catId}")
    public R listByCatId(@PathVariable("catId") Long catId){
        List<PmsCategoryBrandRelation> list = pmsCategoryBrandRelationService.listByCatId(catId);
        return R.ok(list);
    }
}
